package yu.zhu.todo.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import yu.zhu.todo.pojo.TodoDto;
import yu.zhu.todo.repository.redis.RedisRepository;
import yu.zhu.todo.service.TodoService;
import yu.zhu.todo.utils.IdWorker;

import java.util.List;

/**
 * @Author yuzhu
 * @Date 2020/11/10 22:51
 */
@Service
public class TodoServiceRedislImpl implements TodoService {

    @Autowired
    private RedisRepository redisRepository;

    @Autowired
    private IdWorker idWorker;


    @Override
    public TodoDto saveTodo(TodoDto todo) {
        String idStr = idWorker.nextId()+"" ;
        todo.setId(idStr);
        redisRepository.save(todo);
        return todo;
    }

    @Override
    public void deleteTodo(String id) {
        redisRepository.deleteById(id);
    }

    @Override
    public List<TodoDto> findAllTodo() {
        Iterable<TodoDto> repositoryAll = redisRepository.findAll();
        return (List<TodoDto>) repositoryAll;
    }

    @Override
    public TodoDto updateTodo(TodoDto todo) {
        TodoDto save = redisRepository.save(todo);
        return save;
    }

    @Override
    public TodoDto findByTodoId(String id) {
        TodoDto todoDto = redisRepository.findById(id).get();
        System.out.println(todoDto);
        return todoDto;
    }
}
